using System;
namespace ch.ethz.ssh2.packets
{
	
	/// <summary> PacketSessionX11Request.
	/// 
	/// </summary>
	/// <author>  Christian Plattner
	/// </author>
	/// <version>  2.50, 03/15/10
	/// </version>
	public class PacketSessionX11Request
	{
		virtual public byte[] Payload
		{
			get
			{
				if (payload == null)
				{
					TypesWriter tw = new TypesWriter();
					tw.writeByte(Packets.SSH_MSG_CHANNEL_REQUEST);
					tw.writeUINT32(recipientChannelID);
					tw.writeString("x11-req");
					tw.writeBoolean(wantReply);
					
					tw.writeBoolean(singleConnection);
					tw.writeString(x11AuthenticationProtocol);
					tw.writeString(x11AuthenticationCookie);
					tw.writeUINT32(x11ScreenNumber);
					
					payload = tw.getBytes();
				}
				return payload;
			}
			
		}
		internal byte[] payload;
		
		public int recipientChannelID;
		public bool wantReply;
		
		public bool singleConnection;
		internal System.String x11AuthenticationProtocol;
		internal System.String x11AuthenticationCookie;
		internal int x11ScreenNumber;
		
		public PacketSessionX11Request(int recipientChannelID, bool wantReply, bool singleConnection, System.String x11AuthenticationProtocol, System.String x11AuthenticationCookie, int x11ScreenNumber)
		{
			this.recipientChannelID = recipientChannelID;
			this.wantReply = wantReply;
			
			this.singleConnection = singleConnection;
			this.x11AuthenticationProtocol = x11AuthenticationProtocol;
			this.x11AuthenticationCookie = x11AuthenticationCookie;
			this.x11ScreenNumber = x11ScreenNumber;
		}
	}
}